package cn.lls.vo.permission;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @ClassName PermissionVO
 * @Author 划水艺术家
 * @Date 2022/11/15 23:17
 * @Version 1.0
 **/
@Data
@ApiModel("权限对象视图层")
public class PermissionVO implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * 权限Id，主键
     */
    @ApiModelProperty("权限Id，主键")
    private Integer permissionId;

    /**
     * 父权限Id
     */
    @ApiModelProperty("父权限Id")
    private Integer parentId;

    /**
     * 权限名，对应于功能
     */
    @ApiModelProperty("权限名，对应于功能")
    private String permissionName;

    /**
     * 权限url
     */
    @ApiModelProperty("权限url")
    private String url;

    /**
     * 权限类型 0：目录 1：菜单 2：按钮
     */
    @ApiModelProperty("权限类型 0：目录 1：菜单 2：按钮")
    private Integer permissionType;

    /**
     * 菜单图标
     */
    @ApiModelProperty("菜单图标")
    private String icon;

    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Integer orderNum;

    /**
     * 适用范围 0超级管理员 1公司管理员 2公司职员
     */
    private Integer apply;

    /**
     * 当适用范围为 2时，该功能是否为默认分必须分配（如查看密码、查看公告等） ; 为1代表是
     */
    private Integer defaultMust;


    /**
     * 子权限
     */
    @ApiModelProperty("子权限")
    private List<PermissionVO> childrenPermissions;

    /*
       组件路径
    */
    private String component;

    /*
    重定向
     */
    private String redirect;

    /*
    是否隐藏
     */
    private Integer hidden;

//    private Boolean hasChildren;

}
